import axios from "axios";
import { Dialog } from "vant";
import router from "../router";

// 创建axios实例
const request = axios.create({
  //baseURL: '/ilmp-aus-ruleexecute-app',// 所有的请求地址前缀部分(没有后端请求不用写)
  timeout: 60000, // 请求超时时间(毫秒)
  withCredentials: true, // 异步请求携带cookie
  headers: {
    "Content-Type": "application/json; charset=utf-8",
    //   'Authorization': 'eyJhbGciOiJIUzI1NiJ9.eyJsb2dpblVzZXJDb2RlIjoiY2huMDAwMTI2MCIsInN0YSI6MTcxMDEyMjk4NzIxNCwiZXhwIjoxNzEwMTMwMTg3MjE0fQ.D_9LCdsMZz5evGd-7U1OWHX2P9i8ghv-IZOSDHzt0vA'
  },
  // headers: {
  // 设置后端需要的传参类型
  // 'Content-Type': 'application/json',
  // 'token': x-auth-token',//一开始就要token
  // 'X-Requested-With': 'XMLHttpRequest',
  // },
});

//打印获取数据失败的错误信息
const errorHandle = (error) => {
  // const status = error.status
  const info = error.message
  // switch (status) {
  //   case 400:
  //     console.log("语义有误");
  //     break;
  //   case 401:
  //     console.log("服务器认证失败");
  //     break;
  //   case 403:
  //     console.log("服务器拒绝访问");
  //     break;
  //   case 404:
  //     console.log("地址错误");
  //     break;
  //   case 500:
  //     console.log("服务器遇到意外");
  //     break;
  //   case 502:
  //     console.log("服务器无响应");
  //     break;
  //   default:
  //     console.log(info);
  //     break;
  // }
  console.log(info);
};

//1、发送数据之前（发送请求之前）
request.interceptors.request.use(
  (config) => {
    //成功则进入此方法
    //config:包含着网络请求的所有信息
    // if(config.method === 'post'){
    //     config.data = querystring.stringify(config.data)
    // }
    config.headers.Authorization = sessionStorage.getItem("Authorization");
    return config;
  },
  (error) => {
    //失败则进入此方法
    return Promise.reject(error);
  }
);

//2、获取数据之前
request.interceptors.response.use(
  (response) => {
    //成功则进入此方法
    //无论请求后端成功与否，都会返回响应信息，只不过返回的方法用的不一样
    if (response.status !== 200 && response.status !== 511 && response.status !== 510 ) {
      Dialog.alert({
        message: "网络通信不稳定，请重试",
        confirmButtonText: "确定",
      }).then(() => {
        // router.go(-1);
      });
    }
    console.log('response.data.resultCode!!!',response.data.resultCode)
    if (response.data.resultCode == 4005 ) {
      Dialog.alert({
        message: response.data.resultMsg,
        confirmButtonText: "确定",
      }).then(() => {
        let data = {
          //sessionTimeOut : sessionTimeOutFlag //"Yes" Session超时 "No":系统正常的返回
          sessionTimeOut: 'No', //"Yes" Session超时 "No":系统正常的返回
          exitSysPage: "1" //"1" 信易通首页  "2":“我”页面
        };
        setTimeout(function () {
          cordova.sino.entryLocalSys(function () { }, data);
        }, 500);
      });
    }
    return response.status === 200
      ? Promise.resolve(response)
      : Promise.reject(response);
  },
  (error) => {
    //失败则进入此方法
    // Dialog.alert({
    //   message: "网络通信不稳定，请重试",
    //   confirmButtonText: "确定",
    // }).then(() => {
    //   // router.go(-1);
    // });
    //错误的处理才是我们需要关注的
    errorHandle(error);
    return Promise.reject(error);
  }
);

export default request;
